﻿// 防止头文件重复包含
#ifndef CHANNELTABLEITEM_H
#define CHANNELTABLEITEM_H

// 包含自定义的时间线项头文件
#include "ChannelTimeLineItem.h"
// 包含Qt的QWidget头文件
#include <QWidget>

// 声明Ui命名空间下的ChannelTableItem类
namespace Ui {
class ChannelTableItem;
}

/**
 * @brief 通道表格项类
 * 继承自QWidget，用于显示和管理通道相关的数据和时间线
 * 提供清理记录和更新通道记录的功能
 */
class ChannelTableItem : public QWidget
{
    // 启用Qt的信号与槽机制
    Q_OBJECT

public:
    /**
     * @brief 构造函数
     * @param parent 父窗口指针，默认为nullptr
     * 初始化UI界面和时间线项，设置坐标轴的默认值
     */
    explicit ChannelTableItem(QWidget *parent = 0);
    
    /**
     * @brief 析构函数
     * 释放UI界面和时间线项占用的资源
     */
    ~ChannelTableItem();
    
    /**
     * @brief 清理记录
     * 清除当前通道的所有记录数据
     */
    void cleanRecord();
    
    /**
     * @brief 更新通道记录
     * @param num 通道数量
     * 根据传入的通道数量更新通道记录和时间线显示
     */
    void updateChannelRecord(int num);

private:
    // UI界面指针，用于访问Qt Designer设计的界面元素
    Ui::ChannelTableItem *ui;
    
    // 时间线项指针，指向ChannelTimeLineItem对象
    ChannelTimeLineItem *m_timeLine;
    
    // X轴最小值
    int m_minXValue;
    
    // X轴最大值
    int m_maxXValue;
    
    // Y轴最小值
    int m_minYValue;
    
    // Y轴最大值
    int m_maxYValue;

};

#endif // CHANNELTABLEITEM_H
